Reverse Engineering a Large Component-Based Software Product
نویسندگان
چکیده
Most research done to date on software maintenance has been focused mainly on the evolution of legacy systems based on obsolete technologies. However, the use of more recent yet evolving technologies, like component-based techniques, also raise various issues about software comprehension and evolution. In particular, current industrial-strength component models like COM are based on many technical aspects that make them difficult to understand and use. The evolution of large component-based software products is thus an emerging issue. This paper takes as a case study the component model developed and used by Dassault Systèmes, one of the largest software companies in Europe, for the development of its product lines, namely CATIA, DELMIA, and ENOVIA. This paper shows how the use of a meta model can help in understanding and reasoning about components, and how this meta model constitutes a good basis for building a reverse engineering environment. Currently, two kinds of tools have been integrated in this environment: OMVT which is Dassault Systèmes specific, and GSEE which is a generic tool independent from the meta-model used.
منابع مشابه
Supporting Collaborative Grid Application Development within the e-Science Community
The systemic representation and organisation of software artefacts, e.g. specifications, designs, interfaces, and implementations, resulting from the development of large distributed systems from software components have been addressed by our research within the Practitioner and AMES projects [1,2,3,4]. Without appropriate representations and organisations, large collections of existing softwar...
متن کاملUser-Driven Product Line Engineering for Assembling Large Families of Software
Traditional software engineering allows engineers to propose to their clients multiple specialized software distributions assembled from a shared set of software assets. The management of these assets however requires a trade-off between client satisfaction and software engineering process. Clients have more and more difficult to find a distribution or components based on their needs from all o...
متن کاملRecovering the Structure of Software Systems Using Tube Graph Interconnection Clustering
An important product of the software design phase is the speciication of the software structure at various levels of detail. Without reliable design documentation, signiicant software systems become less accessible to software engineers because structural information is buried in the intricate implementation source code. Reverse engineering techniques aim at recovering the structure of software...
متن کاملPrediction of Software Performance Using Genetic Programming
Performance is a non-functional requirement for a software product. It is related to reliability, security and other non-functional requirements. Various approaches are available for software performance prediction. In this paper we present a novel method of using Genetic Programming in reverse engineering concept. Reverse Engineering is the process of analyzing software product with the aim of...
متن کاملAn Ontological Approach for Identifying Variants: The Cases of Specialization and Template Instantiation
Software is a crucial component in many products and often is a product in itself. Software artifacts are often developed for particular needs. However, identifying software variants is important for increasing reuse, reducing time and costs of development and maintenance, increasing quality and reliability, and improving productivity. We propose a method for utilizing variability mechanisms fr...
متن کامل